/* eslint-disable @typescript-eslint/no-explicit-any */
export type ModelValueType = any;
export type InputItemType = 'input' | 'inputBtn' | 'select' | 'inputNumber' | 'cascader' | 'datePicker' | 'timePicker' | 'timeSelect' | 'treeSelect' | 'tree' | 'checkbox' | 'radio' | 'radioButton' | 'upload' | 'textarea'
export type FieldsItemType = { [key: string]: ModelValueType }
export type ExposeFuncType = {
  setFieldsValue: (data: FieldsItemType) => void,
  setOptions: (key: string, data: any) => void
}
export type FilterItem = {
  label: string;
  prop: string;
  span?: number; // 栅格占据的列数，默认8
  width?: string; // 栅格占据的列数，默认100px
  icon?: string; // 7-24新增输入框图标可选属性定义
  suffixIcon?: string; // 7-24新增输入框图标可选属性定义
  remark?: string; // 是否显示备注
  controlsPosition?: string; // 数字输入框的按钮位置
  defaultValue?: ModelValueType;
  isDisabled?: boolean;  // 7-19新增Disabled可选属性定义，在filter.ts文件中配置该属性即可设置控件是否为只读
  multiple?: boolean;    // 7-21新增multiple可选属性定义，在filter.ts文件中配置该属性即可设置下拉列表是否可多选
  filterable?: boolean;
  limit?: boolean;       // 7-28新增limit可选属性定义，在filter.ts文件中配置该属性即可设置文件上传的最大数量
  type: InputItemType;
  inputProps: {
    [key: string]: any
  },
  events?: {
    [key: string]: (value: string, func: ExposeFuncType) => void
  }
}
